package com.jjh.jhwebserver.core;

import com.jjh.jhwebserver.util.FileUtils;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * servlet容器
 * @author JJH
 */
public class ServletContext {
    /**
     * 每个web应用都要一个名称
     */
    private String appName;

    /**
     * 所有的servlet实例
     * K: 路径
     * v: servlet的字节码对象
     */
    private  Map<String,Class<?>> servletMap = new ConcurrentHashMap<>();
    /**
     * servlet的处理器，负责把所有的servlet注册到map中
     */


   public ServletContext(String appName){
       this.appName = appName;
       this.run();
   }



    /**
     * 将所有被@WebServlet注解标记的类加载到map集合中
     */
   private void run(){
        Map<String, Class<?>> servlets = FileUtils.getServlets();
        this.servletMap.putAll(servlets);
    }


    /**
     * 返回所有的servlet字节码对象集合
     * @return
     */
    public  Map<String,Class<?>> getServlets(){
        return this.servletMap;
    }


    public String getAppName() {
        return appName;
    }
}
